package opgave3;

/**
 * @author Andre Baart en Jeroen Castelein
 * @elementen 
 * 		Characters van het type char
 * @structuur
 * 		Lineair
 * @domein
 * 		Alle alfanumerieke characters (A-Z, 0-9), waarvan de eerste een letter moet zijn.
 * @constructor
 * 		Identifier();
 * 			<dl>
 * 				<dt><b>PRE-conditie</b><dd>-
 * 				<dt><b>POST-conditie</b><dd>De inhoud van het nieuwe Identifier-object is 'a'.
 * 			</dl>
 * 		<br>
 * 		Identifier (Identifier src);
 * 			<dl>
 * 				<dt><b>PRE-conditie</b><dd>-
 * 				<dt><b>POST-conditie</b><dd>De inhoud van het nieuwe Identifier-object is een kopie van src.
 * 			</dl>
 **/

public interface IdentifierInterface extends Data {
	
	/** Initialiseert de Identifier op de meegegeven char c.
     * @preconditie
     *	    -
     * @postconditie
     *	    De Identifier bevat nu alleen de char c.
     **/
	void init(char c);
	
	/** Retourneert of de data in de meegegeven Identifier overeen komt met de data van deze Identifier.
     * @preconditie
     *	    -
     * @postconditie
     *	    True - De data is hetzelfde
     *		False - De data is niet hetzelfde 
     **/
	boolean equals(Identifier ident);
	
	/** Retourneert de character op de plaats n in de Identifier.
     * @preconditie
     *	    De Identifier bevat een char op de plaats n.
     * @postconditie
     *	    De waarde van de char op plaats n in de Identifier is getourneerd.
     **/
	char getChar(int n);
	
	/** Voegt de character c toe achteraan de rij characters.
	 * 
	 * @preconditie
	 * 		-
	 * @postconditie
	 * 		De character c is achteraan de rij characters in de Identifier geplaatst.
	 */
	void addChar(char c);
	
	/** Retourneert het aantal characters in de Identifier.
     * @preconditie
     *	    -
     * @postconditie
     *	    Het aantal characters in de Identifier is geretourneerd.
     **/
	int size();
	
	/** Retourneert het verschil tussen een meegegeven object, en het object zelf.
     * @preconditie
     *	    -
     * @postconditie
     *	    RETURN:
     *			-1, wanneer het meegegeven object groter is dan het eigen object.
     *			0, wanneer beide objecten een gelijke grootte hebben.
     *			1, wanneer het eigen object groter is dan het meegegeven object.
     **/
	int compareTo(Object o);
}
